package com.hq.learnmybatisplus.handler;

import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
import com.hq.learnmybatisplus.config.PaginationInterceptorConfig;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;

/**
 * 多租户处理器    可以添加多个
 *  （有需求 部分sql不进行处理的  可以在config中设置paginationInterceptor.setSqlParserFilter
 *  或者在 @SqlParser注解对应的sql接口进行不过滤处理）
 * @author hq
 * @see PaginationInterceptorConfig
 */
public class MyTenantHandler implements TenantHandler {
    @Override
    public Expression getTenantId() {
        //数据库的字段 查询的值
        return new LongValue(2L);
    }

    @Override
    public String getTenantIdColumn() {
        //需要过滤数据库的字段 条件
        return "manager_id";
    }

    @Override
    public boolean doTableFilter(String tableName) {
        //排除role表不进行manager_id 过滤  其他所有表都会进行sql处理
        if("role".equals(tableName)){
            return true;
        }
        return false;
    }
}
